package com.atguigu.tingshu.album.service;

import com.atguigu.tingshu.model.album.TrackInfo;
import com.atguigu.tingshu.query.album.TrackInfoQuery;
import com.atguigu.tingshu.vo.album.AlbumTrackListVo;
import com.atguigu.tingshu.vo.album.TrackInfoVo;
import com.atguigu.tingshu.vo.album.TrackListVo;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.web.multipart.MultipartFile;

import java.util.Map;

public interface TrackInfoService extends IService<TrackInfo> {

    /**
     * @author gengjian
     * @date 2025/02/21 21:26:26
     * 上传声音
     */
    Map<String,String> uploadTrack(MultipartFile file);


    /**
     * @author gengjian
     * @date 2025/02/22 14:12:42
     * 保存声音
     */
    void saveTrackInfo(Long userId, TrackInfoVo trackInfoVo);

    /**
     * @author gengjian
     * @date 2025/02/22 15:57:52
     * 分页查询声音列表
     */
    void findUserTrackPage(Page<TrackListVo> page, TrackInfoQuery trackInfoQuery);

    /**
     * @author gengjian
     * @date 2025/02/23 14:11:49
     * 根据声音id
     */
    void removeTrackInfo(Long trackId);

    /**
     * @author gengjian
     * @date 2025/02/23 16:57:37
     * 修改声音信息
     */
    void updateTrackInfo(Long trackId, TrackInfoVo trackInfoVo);

    /**
     * @author gengjian
     * @date 2025/03/03 18:45:10
     * 根据专辑id分页查询声音列表
     */
    IPage<AlbumTrackListVo> findAlbumTrackPage(Page<AlbumTrackListVo> page, Long albumId, Long userId);
}
